home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / dev / gui / ClassFree_src.lha / ClassFree_src / CFlistviewclass / test.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-11-08  |  3.7 KB  |  154 lines

  1. /* Small test proggy for my listviewclass */
  2.  
  3. #include <clib/alib_protos.h>
  4. #include <clib/exec_protos.h>
  5. #include <clib/graphics_protos.h>
  6. #include <clib/intuition_protos.h>
  7. #include <clib/dos_protos.h>
  8. #include <intuition/intuition.h>
  9. #include <intuition/gadgetclass.h>
  10. #include <intuition/imageclass.h>
  11. #include <stdio.h>
  12. #include "CFlistview.h"
  13. #include "CFbutton.h"
  14.  
  15. #define CFB_G    0
  16. #define TSTUP_G  1
  17. #define TSTDN_G  2
  18. #define QUIT_G   3
  19. #define NUM_GADS 4
  20.  
  21.  
  22. struct Library *CFBbase;
  23. struct Library *CFLbase;
  24.  
  25. void main(void)
  26. {
  27.   struct Screen *wb;
  28.   struct DrawInfo *dri;
  29.   struct Window *win;
  30.   struct Gadget *glist, *tgad, *gads[NUM_GADS];
  31.   struct IntuiMessage *imsg;
  32.   struct List list;
  33.   struct Node node[7];
  34.   char *label[] = {"Numme","Snabel","Tester","Rygge","Arrrg","Fargin","Jubii"};
  35.   BOOL breakflag = FALSE;
  36.   LONG pos,iclass;
  37.  
  38.   CFBbase = OpenLibrary("Gadgets/CFbutton.gadget",NULL);
  39.   CFLbase = OpenLibrary("CFlistview.gadget",NULL);
  40.  
  41. //  if(lvbase) printf("Class opened\n");
  42.  
  43.   win = OpenWindowTags(NULL,
  44.           WA_Left, 200,
  45.           WA_Width,400,WA_Height,200,
  46.           WA_IDCMP, IDCMP_GADGETUP,
  47.           TAG_DONE);
  48.   SetAPen(win->RPort,1);
  49.  
  50.   NewList(&list);
  51.   pos = 0;
  52.   while(pos<7)
  53.   {
  54.     node[pos].ln_Name = label[pos];
  55.     AddTail(&list,&node[pos]);
  56.     pos++;
  57.   }
  58.  
  59.   wb = LockPubScreen("Workbench");
  60.   dri = GetScreenDrawInfo(wb);
  61.  
  62.   gads[CFB_G] = (struct Gadget *)NewObject(NULL,CFlistviewClassName,
  63.           GA_Left, 30, GA_Top, 30,
  64.           GA_Width, 140, GA_Height, 80,
  65.           GA_RelVerify, TRUE,
  66.           GA_DrawInfo, dri,
  67.           CFLV_Labels, &list,
  68.           CFLV_Top, 1,
  69.           CFLV_Selected, 2,
  70.           GA_ID, CFB_G,
  71.           TAG_DONE);
  72.   FreeScreenDrawInfo(wb,dri);
  73.   UnlockPubScreen(NULL,wb);
  74.  
  75.   if(!gads[CFB_G])
  76.   {
  77.     CloseWindow(win);
  78.     CloseLibrary(CFLbase);
  79.     CloseLibrary(CFBbase);
  80.     exit(0);
  81.   }
  82.   glist = gads[CFB_G];
  83.   gads[TSTUP_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  84.           GA_Previous, gads[TSTUP_G-1],
  85.           GA_Left, 200, GA_Top, 30,
  86.           GA_Width, 50, GA_Height, 20,
  87.           GA_Highlight, FALSE,
  88.           GA_Text, "UP",
  89.           GA_RelVerify, TRUE,
  90.           GA_ID, TSTUP_G,
  91.           TAG_DONE);
  92.  
  93.   gads[TSTDN_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  94.           GA_Previous, gads[TSTDN_G-1],
  95.           GA_Left, 200, GA_Top, 60,
  96.           GA_Width, 50, GA_Height, 20,
  97.           GA_Text, "DOWN",
  98.           CFBU_Layout, LAYOUT_TXTLEFT,
  99.           GA_RelVerify, TRUE,
  100.           GA_ID, TSTDN_G,
  101.           TAG_DONE);
  102.   gads[QUIT_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  103.           GA_Previous, gads[QUIT_G-1],
  104.           GA_Left, 200, GA_Top, 90,
  105.           GA_Width, 50, GA_Height, 20,
  106.           GA_Text, "Quit",
  107.           GA_RelVerify, TRUE,
  108.           GA_ID, QUIT_G,
  109.           TAG_DONE);
  110.  
  111. //  if(glist) printf("NewObject succeded\n");
  112. //  else printf("Failed to create lvc_object..\n");
  113.  
  114.  
  115.   AddGList(win,glist,-1,-1,NULL);
  116.   RefreshGadgets(glist,win,NULL);
  117.  
  118.   while(!breakflag)
  119.   {
  120.     WaitPort(win->UserPort);
  121.     while(imsg = (struct IntuiMessage *)GetMsg(win->UserPort))
  122.     {
  123.       iclass = imsg->Class;
  124.       tgad = (struct Gadget *)imsg->IAddress;
  125.       pos = imsg->Code;
  126.       ReplyMsg((struct Message *)imsg);
  127.       if(iclass == IDCMP_GADGETUP)
  128.       {
  129.         switch(tgad->GadgetID)
  130.         {
  131.           case QUIT_G: breakflag = TRUE; break;
  132.           case CFB_G:
  133.             printf("Listview code: %ld\n",pos);
  134.             break;
  135. /*          case TSTUP_G:
  136.             GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  137.             SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos-1,TAG_DONE);
  138.             break;
  139.           case TSTDN_G:
  140.             GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  141.             SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos+1,TAG_DONE);
  142.             break;*/
  143.         }
  144.       }
  145.     }
  146.   }
  147.  
  148.   RemoveGList(win,glist,-1);
  149.   pos = 0;
  150.   while(pos<NUM_GADS) DisposeObject(gads[pos++]);
  151.   CloseWindow(win);
  152.   CloseLibrary(CFBbase);
  153.   CloseLibrary(CFLbase);
  154. }